//
// Copyright 2023 Turing Edu. All Rights Reserved.
//
// FileName: 858D.cc
// Author: Beiyu Li <[email protected]>
// Date: 2023-03-17
//
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int inf = 0x3f3f3f3f;
const LL infLL = 0x3f3f3f3f3f3f3f3fLL;
const int maxn = 70000 + 5;
const int mod = 19260817;
int n;
char s[maxn][11];
int h[maxn][10], p10[10];
int cnt[mod];
pair<int, int> ret[maxn];
int Hash(int i, int l, int r) {
return (h[i][r] - (LL)h[i][l-1] * p10[r-l+1] % mod + mod) % mod;
}
int main() {
scanf("%d", &n);
for (int i = 0; i < n; ++i) {
scanf("%s", s[i] + 1);
for (int j = 1; j <= 9; ++j)
h[i][j] = (h[i][j-1] * 10 + s[i][j] - '0') % mod;
}
for (int j = 0; j < 10; ++j) p10[j] = (j? p10[j-1] * 10 % mod: 1);
for (int l = 1; l <= 9; ++l) {
memset(cnt, 0, sizeof(cnt));
for (int i = 0; i < n; ++i)
for (int j = 1; j + l <= 10; ++j) ++cnt[Hash(i,j,j+l-1)];
for (int i = 0; i < n; ++i) {
if (ret[i].first) continue;
for (int j = 1; j + l <= 10; ++j)
if (!--cnt[Hash(i,j,j+l-1)]) ret[i] = make_pair(j, l);
for (int j = 1; j + l <= 10; ++j) ++cnt[Hash(i,j,j+l-1)];
}
}
for (int i = 0; i < n; ++i) {
s[i][ret[i].first+ret[i].second] = 0;
printf("%s\n", s[i] + ret[i].first);
}
return 0;
}
274. H-Index | 260. Single Number III |
240. Search a 2D Matrix II | 238. Product of Array Except Self |
229. Majority Element II | 222. Count Complete Tree Nodes |
215. Kth Largest Element in an Array | 198. House Robber |
153. Find Minimum in Rotated Sorted Array | 150. Evaluate Reverse Polish Notation |
144. Binary Tree Preorder Traversal | 137. Single Number II |
130. Surrounded Regions | 129. Sum Root to Leaf Numbers |
120. Triangle | 102. Binary Tree Level Order Traversal |
96. Unique Binary Search Trees | 75. Sort Colors |
74. Search a 2D Matrix | 71. Simplify Path |
62. Unique Paths | 50. Pow(x, n) |
43. Multiply Strings | 34. Find First and Last Position of Element in Sorted Array |
33. Search in Rotated Sorted Array | 17. Letter Combinations of a Phone Number |
5. Longest Palindromic Substring | 3. Longest Substring Without Repeating Characters |
1312. Minimum Insertion Steps to Make a String Palindrome | 1092. Shortest Common Supersequence |